package geeks.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
/*import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Collection;*/

import geeks.excepcion.DAOExcepcion;
import geeks.modelo.Comentario;
import geeks.modelo.Idea;
import geeks.modelo.Permiso;
import geeks.modelo.Persona;

import geeks.util.ConexionBD;

public class ComentarioDAO extends BaseDao {

	public Comentario insertar(Comentario co) throws DAOExcepcion {
		System.out.println("antes de insertar "+ " persona "+ co.getoPermiso().getoPersona().getIdPersona()+ " idea "+  co.getoPermiso().getoIdea().getCodigo() + " comentario "+ co.getDescComen());
		String query = "insert into comentario(Permisos_idPersona, Permisos_idIdea, DescComen, Fecha) values (?,?,?,now())";
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		try {
			con = ConexionBD.obtenerConexion();
			stmt = con.prepareStatement(query);
			
			stmt.setInt(1, co.getoPermiso().getoPersona().getIdPersona());
			stmt.setInt(2, co.getoPermiso().getoIdea().getCodigo());
			stmt.setString(3,co.getDescComen());
			int i = stmt.executeUpdate();
			System.out.println("intentando");
			if (i != 1) {
				throw new SQLException("No se pudo insertar");
			}

		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} finally {
			this.cerrarResultSet(rs);
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
		System.out.println("paso");
		return co;
	} 
	
	public Collection<Comentario> listarxIdea(int i) throws DAOExcepcion {
		Collection<Comentario> c = new ArrayList<Comentario>();
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		try {
			con = ConexionBD.obtenerConexion();
			String query ="SELECT idComentario, Permisos_idPersona, Permisos_idIdea, DescComen, Fecha FROM comentario where Permisos_idIdea=?";
			stmt = con.prepareStatement(query);
			stmt.setInt(1, i);
			rs = stmt.executeQuery();
			while (rs.next()) {

				Permiso pot = new Permiso();
				Comentario cl= new Comentario();
                
				cl.setIdComentario(rs.getInt("idComentario"));
				//Persona queCcomenta
				
	            PersonaDAO ped= new PersonaDAO();
	            IdeaDAO idd = new IdeaDAO();
				pot.setoPersona(ped.obtener(rs.getInt("Permisos_idPersona")));
	            pot.setoIdea(idd.obtener(rs.getInt("Permisos_idIdea")));
 
	            cl.setoPermiso(pot);
	            cl.setDescComen(rs.getString("DescComen"));
	            //cl.setFecha(rs.getTimestamp("Fecha"));
	            cl.setFecha(rs.getTimestamp("Fecha"));
				c.add(cl);
			}      
 
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} finally {
			this.cerrarResultSet(rs);
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
		return c;
	}
}
 